A wide variety of devices and systems communicate via serial communications carried out over communication links compliant with the Universal Serial Bus or USB specifications. The specifications are promulgated by USB Implementers Forum Inc. (USB-IF), which operates as non-profit organization founded by the companies that developed the USB standard. USB connections are ubiquitous, linking PCs to keyboards, joysticks, cameras, smart phones, and a virtually endless variety of other peripherals.
Three definitional areas describe a USB system, including the USB interconnect, the USB host, and one or more USB devices. The USB is a polled bus and there is only one USB host per USB system. The USB host initiates all transactions and there are four transaction types defined: control, interrupt, bulk, and isochronous. Isochronous data is a data stream whose timing is implied by its delivery rate and in the USB context an isochronous device is an entity with isochronous endpoints, as defined in the USB specification.
An isochronous endpoint sources or sinks sampled analog streams or synchronous data streams. In particular, an endpoint that is capable of consuming an isochronous data stream sent from the host is referred to as an “isochronous sink,” while an endpoint that is capable of producing and sending an isochronous data stream to the host is referred to as an “isochronous source.” Isochronous transfers are used when working with isochronous data, and such transfers provide periodic, continuous communication between the host and a targeted device. In the USB parlance, a “device” is a logical or physical entity that performs a function. While the term may refer to a single hardware component, it may also refer more broadly to an overall collection of hardware components that perform a particular function. This functional view may be abstracted to the level of the USB-attached entity in question, e.g., a camera function, a gaming controller function, etc. As used herein, the term USB device will be generally understood to be an entity that includes a USB endpoint.
While USB provides a standardized, robust means of inter-device communications, it is not without certain limitations on its flexibility. For example, the older USB 2.0 specification dictates a maximum physical cable length of five meters, and an outer-limit on the overall or end-to-end transaction delays over a hub-extended set of USB links. The more recent USB 3.0 specification does not define a maximum cable length explicitly, although such limits are implicit in its electrical and timing specifications. Such limitations are particularly challenging to address in environments where it would be desirable to have extended isochronous data links used with USB endpoints.